import logging
import os
from datetime import datetime

class Logger:
    def __init__(self, log_file_name="mhr_helper.log", log_level=logging.INFO):
        self.log_file_name = log_file_name
        self.log_level = log_level
        self.logger = self._setup_logger()

    def _setup_logger(self):
        # 创建日志目录（如果不存在）
        log_dir = os.path.dirname(self.log_file_name)
        if log_dir and not os.path.exists(log_dir):
            os.makedirs(log_dir)

        # 创建日志记录器
        logger = logging.getLogger(__name__)
        logger.setLevel(self.log_level)

        # 创建文件处理器
        file_handler = logging.FileHandler(self.log_file_name, 'w')
        file_handler.setLevel(self.log_level)

        # 创建控制台处理器
        console_handler = logging.StreamHandler()
        console_handler.setLevel(self.log_level)

        # 创建格式化器
        formatter = logging.Formatter("%(asctime)s-%(module)s[line-%(lineno)s]-%(levelname)s: %(message)s",
            datefmt='%Y-%m-%d %H:%M:%S')
        file_handler.setFormatter(formatter)
        console_handler.setFormatter(formatter)

        # 添加处理器到记录器
        logger.addHandler(file_handler)
        logger.addHandler(console_handler)

        return logger

    def debug(self, message):
        self.logger.debug(message)

    def info(self, message):
        self.logger.info(message)

    def warning(self, message):
        self.logger.warning(message)

    def error(self, message):
        self.logger.error(message)

    def critical(self, message):
        self.logger.critical(message)

# # 创建全局日志实例
# logger = Logger().logger